home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Printing.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  14.1 KB  |  477 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Printing.mod
  3.  
  4.      Contains:    Print Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED STRICT_WINDOWS*)
  21.   (*$SET STRICT_WINDOWS FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE Printing;
  26.  
  27. IMPORT SYSTEM, Types, Quickdraw, Dialogs;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.  
  33. CONST
  34.     iPFMaxPgs*                    = 128;
  35.     iPrPgFract*                    = 120;                            (*Page scale factor. ptPgSize (below) is in units of 1/iPrPgFract*)
  36.     iPrPgFst*                    = 1;                            (*Page range constants*)
  37.     iPrPgMax*                    = 9999;
  38.     iPrRelease*                    = 3;                            (*Current version number of the code.*)
  39.     iPrSavPFil*                    = -1;
  40.     iPrAbort*                    = $0080;
  41.     iPrDevCtl*                    = 7;                            (*The PrDevCtl Proc's ctl number*)
  42.     lPrReset*                    = $00010000;                    (*The PrDevCtl Proc's CParam for reset*)
  43.     lPrLineFeed*                    = $00030000;
  44.     lPrLFStd*                    = $0003FFFF;                    (*The PrDevCtl Proc's CParam for std paper advance*)
  45.     lPrLFSixth*                    = $0003FFFF;
  46.     lPrPageEnd*                    = $00020000;                    (*The PrDevCtl Proc's CParam for end page*)
  47.     lPrDocOpen*                    = $00010000;
  48.     lPrPageOpen*                    = $00040000;
  49.     lPrPageClose*                = $00020000;
  50.     lPrDocClose*                    = $00050000;
  51.     iFMgrCtl*                    = 8;                            (*The FMgr's Tail-hook Proc's ctl number*)
  52.     iMscCtl*                        = 9;                            (*The FMgr's Tail-hook Proc's ctl number*)
  53.     iPvtCtl*                        = 10;                            (*The FMgr's Tail-hook Proc's ctl number*)
  54.  
  55.     pPrGlobals*                    = $00000944;                    (*The PrVars lo mem area*:*)
  56.     bDraftLoop*                    = 0;
  57.     bSpoolLoop*                    = 1;
  58.     bUser1Loop*                    = 2;
  59.     bUser2Loop*                    = 3;
  60.     fNewRunBit*                    = 2;
  61.     fHiResOK*                    = 3;
  62.     fWeOpenedRF*                    = 4;
  63. (*Driver constants *)
  64.     iPrBitsCtl*                    = 4;
  65.     lScreenBits*                    = 0;
  66.     lPaintBits*                    = 1;
  67.     lHiScreenBits*                = $00000002;                    (*The Bitmap Print Proc's Screen Bitmap param*)
  68.     lHiPaintBits*                = $00000003;                    (*The Bitmap Print Proc's Paint [sq pix] param*)
  69.     iPrIOCtl*                    = 5;
  70.     iPrEvtCtl*                    = 6;                            (*The PrEvent Proc's ctl number*)
  71.     lPrEvtAll*                    = $0002FFFD;                    (*The PrEvent Proc's CParam for the entire screen*)
  72.     lPrEvtTop*                    = $0001FFFD;                    (*The PrEvent Proc's CParam for the top folder*)
  73.     iPrDrvrRef*                    = -3;
  74.  
  75.     getRslDataOp*                = 4;
  76.     setRslOp*                    = 5;
  77.     draftBitsOp*                    = 6;
  78.     noDraftBitsOp*                = 7;
  79.     getRotnOp*                    = 8;
  80.     NoSuchRsl*                    = 1;
  81.     OpNotImpl*                    = 2;                            (*the driver doesn't support this opcode*)
  82.     RgType1*                        = 1;
  83.  
  84.     feedCut*                        = 0;
  85.     feedFanfold*                    = 1;
  86.     feedMechCut*                    = 2;
  87.     feedOther*                    = 3;
  88.  
  89.     
  90. TYPE
  91.     TFeed* = Types.SInt8;
  92.  
  93.  
  94. CONST
  95.     scanTB*                        = 0;
  96.     scanBT*                        = 1;
  97.     scanLR*                        = 2;
  98.     scanRL*                        = 3;
  99.  
  100.     
  101. TYPE
  102.     TScan* = Types.SInt8;
  103.  
  104. (* A Types.Rect Types.Ptr *)
  105.     TPRect* = POINTER TO Types.Rect;
  106.  
  107.     PrIdleProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ;
  108.     PrIdleUPP* = Types.UniversalProcPtr;
  109.  
  110. CONST
  111.     uppPrIdleProcInfo* = $00000000; (* PROCEDURE ; *)
  112.  
  113. PROCEDURE NewPrIdleProc*(userRoutine: PrIdleProcPtr): PrIdleUPP;
  114.     (*$IF NOT GENERATINGCFM *)
  115.     INLINE PASCAL $2E9F;
  116.     (*$END*)
  117.  
  118. PROCEDURE CallPrIdleProc*(userRoutine: PrIdleUPP);
  119.     (*$IF NOT GENERATINGCFM*)
  120.     INLINE PASCAL $205F, $4E90;
  121.     (*$END*)
  122. TYPE
  123.     PItemProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (theDialog: Dialogs.DialogPtr; item: INTEGER);
  124.     PItemUPP* = Types.UniversalProcPtr;
  125.  
  126. CONST
  127.     uppPItemProcInfo* = $000002C0; (* PROCEDURE (4 byte param, 2 byte param); *)
  128.  
  129. PROCEDURE NewPItemProc*(userRoutine: PItemProcPtr): PItemUPP;
  130.     (*$IF NOT GENERATINGCFM *)
  131.     INLINE PASCAL $2E9F;
  132.     (*$END*)
  133.  
  134. PROCEDURE CallPItemProc*(theDialog: Dialogs.DialogPtr; item: INTEGER; userRoutine: PItemUPP);
  135.     (*$IF NOT GENERATINGCFM*)
  136.     INLINE PASCAL $205F, $4E90;
  137.     (*$END*)
  138.  
  139. TYPE
  140.     TPrPort* = RECORD
  141.         gPort*:                    Quickdraw.GrafPort;                                (*The Printer's graf port.*)
  142.         gProcs*:                    Quickdraw.QDProcs;                                (*..and its procs*)
  143.         lGParam1*:                LONGINT;                                (*16 bytes for private parameter storage.*)
  144.         lGParam2*:                LONGINT;
  145.         lGParam3*:                LONGINT;
  146.         lGParam4*:                LONGINT;
  147.         fOurPtr*:                BOOLEAN;                                (*Whether the PrPort allocation was done by us.*)
  148.         fOurBits*:                BOOLEAN;                                (*Whether the Quickdraw.BitMap allocation was done by us.*)
  149.     END;
  150.  
  151.     TPPrPort* = POINTER TO TPrPort;
  152.  
  153. (* Printing Graf Port. All printer imaging, whether spooling, banding, etc, happens "thru" a Quickdraw.GrafPort.
  154.   This is the "PrPeek" record. *)
  155.     TPrInfo* = RECORD
  156.         iDev*:                    INTEGER;                                (*Font mgr/QuickDraw device code*)
  157.         iVRes*:                    INTEGER;                                (*Resolution of device, in device coordinates*)
  158.         iHRes*:                    INTEGER;                                (*..note: V before H => compatable with Types.Point.*)
  159.         rPage*:                    Types.Rect;                                    (*The page (printable) rectangle in device coordinates.*)
  160.     END;
  161.  
  162.     TPPrInfo* = POINTER TO TPrInfo;
  163.  
  164. (* Print Info Record*: The parameters needed for page composition. *)
  165.     TPrStl* = RECORD
  166.         wDev*:                    INTEGER;
  167.         iPageV*:                    INTEGER;
  168.         iPageH*:                    INTEGER;
  169.         bPort*:                    Types.SInt8;
  170.         feed*:                    TFeed;
  171.     END;
  172.  
  173.     TPPrStl* = POINTER TO TPrStl;
  174.  
  175.     TPrXInfo* = RECORD
  176.         iRowBytes*:                INTEGER;
  177.         iBandV*:                    INTEGER;
  178.         iBandH*:                    INTEGER;
  179.         iDevBytes*:                INTEGER;
  180.         iBands*:                    INTEGER;
  181.         bPatScale*:                Types.SInt8;
  182.         bUlThick*:                Types.SInt8;
  183.         bUlOffset*:                Types.SInt8;
  184.         bUlShadow*:                Types.SInt8;
  185.         scan*:                    TScan;
  186.         bXInfoX*:                Types.SInt8;
  187.     END;
  188.  
  189.     TPPrXInfo* = POINTER TO TPrXInfo;
  190.  
  191.     TPrJob* = RECORD
  192.         iFstPage*:                INTEGER;                                (*Page Range.*)
  193.         iLstPage*:                INTEGER;
  194.         iCopies*:                INTEGER;                                (*No. copies.*)
  195.         bJDocLoop*:                Types.SInt8;                                    (*The Doc style*: Draft, Spool, .., and ..*)
  196.         fFromUsr*:                BOOLEAN;                                (*Printing from an User's App (not PrApp) flag*)
  197.         pIdleProc*:                PrIdleUPP;                                (*The Proc called while waiting on IO etc.*)
  198.         pFileName*:                Types.StringPtr;                                (*Spool File Name*: NIL for default.*)
  199.         iFileVol*:                INTEGER;                                (*Spool File vol, set to 0 initially*)
  200.         bFileVers*:                Types.SInt8;                                    (*Spool File version, set to 0 initially*)
  201.         bJobX*:                    Types.SInt8;                                    (*An eXtra byte.*)
  202.     END;
  203.  
  204.     TPPrJob* = POINTER TO TPrJob;
  205.  
  206. (* Print Job*: Print "form" for a single print request. *)
  207.     TPrFlag1* = (*ΔΔPACKEDΔΔ*) RECORD
  208.         f15*:                    BOOLEAN;
  209.         f14*:                    BOOLEAN;
  210.         f13*:                    BOOLEAN;
  211.         f12*:                    BOOLEAN;
  212.         f11*:                    BOOLEAN;
  213.         f10*:                    BOOLEAN;
  214.         f9*:                        BOOLEAN;
  215.         f8*:                        BOOLEAN;
  216.         f7*:                        BOOLEAN;
  217.         f6*:                        BOOLEAN;
  218.         f5*:                        BOOLEAN;
  219.         f4*:                        BOOLEAN;
  220.         f3*:                        BOOLEAN;
  221.         f2*:                        BOOLEAN;
  222.         fLstPgFst*:                BOOLEAN;
  223.         fUserScale*:                BOOLEAN;
  224.     END;
  225.  
  226.     TPrint* = RECORD
  227.         iPrVersion*:                INTEGER;                                (*(2) Printing software version*)
  228.         prInfo*:                    TPrInfo;                                (*(14) the PrInfo data associated with the current style.*)
  229.         rPaper*:                    Types.Rect;                                    (*(8) The paper rectangle [offset from rPage]*)
  230.         prStl*:                    TPrStl;                                    (*(8)  This print request's style.*)
  231.         prInfoPT*:                TPrInfo;                                (*(14)  Print Sound.Time Imaging metrics*)
  232.         prXInfo*:                TPrXInfo;                                (*(16)  Print-time (expanded) Print info record.*)
  233.         prJob*:                    TPrJob;                                    (*(20) The Print Job request (82)  Total of the above; 120-82* = 38 bytes needed to fill 120*)
  234.         (*ΔΔ CASE INTEGER OF
  235.         0: ( *)
  236.             printX*:                        ARRAY 19 (*ΔΔ[0..18]ΔΔ*) OF INTEGER;
  237.            (*ΔΔ );
  238.         1: (
  239.             prFlag1*:                    TPrFlag1;
  240.             iZoomMin*:                    INTEGER;
  241.             iZoomMax*:                    INTEGER;
  242.             hDocName*:                    Types.StringHandle;
  243.            );*)
  244.     END;
  245.  
  246.     TPPrint* = POINTER TO TPrint;
  247.     THPrint* = HANDLE TO TPrint (*ΔΔ POINTER TO TPPrint*);
  248.  
  249. (* The universal 120 byte printing record *)
  250.     TPrStatus* = RECORD
  251.         iTotPages*:                INTEGER;                                (*Total pages in Print File.*)
  252.         iCurPage*:                INTEGER;                                (*Current page number*)
  253.         iTotCopies*:                INTEGER;                                (*Total copies requested*)
  254.         iCurCopy*:                INTEGER;                                (*Current copy number*)
  255.         iTotBands*:                INTEGER;                                (*Total bands per page.*)
  256.         iCurBand*:                INTEGER;                                (*Current band number*)
  257.         fPgDirty*:                BOOLEAN;                                (*True if current page has been written to.*)
  258.         fImaging*:                BOOLEAN;                                (*Set while in band's DrawPic call.*)
  259.         hPrint*:                    THPrint;                                (*Types.Handle to the active Printer record*)
  260.         pPrPort*:                TPPrPort;                                (*Types.Ptr to the active PrPort*)
  261.         hPic*:                    Quickdraw.PicHandle;                                (*Types.Handle to the active Quickdraw.Picture*)
  262.     END;
  263.  
  264.     TPPrStatus* = POINTER TO TPrStatus;
  265.  
  266. (* Print Status*: Print information during  *)
  267.     TPfPgDir* = RECORD
  268.         iPages*:                    INTEGER;
  269.         iPgPos*:                    ARRAY 129 (*ΔΔ[0..128]ΔΔ*) OF LONGINT;                (*ARRAY [0..iPfMaxPgs] OF LONGINT*)
  270.     END;
  271.  
  272.     TPPfPgDir* = POINTER TO TPfPgDir;
  273.     THPfPgDir* = HANDLE TO TPfPgDir (*ΔΔ POINTER TO TPPfPgDir*);
  274.  
  275. (* PicFile* = a TPfHeader followed by n QuickDraw Pics (whose PicSize is invalid!) *)
  276. (* This is the Printing Dialog Record. Only used by folks appending their own
  277.    DITLs to the print dialogs.    Print Dialog*: The Dialog Stream object. *)
  278. (*$IF STRICT_WINDOWS *)
  279.     TPPrDlg* = Types.Ptr;
  280.  
  281.     TPPrDlgRef* = Types.Ptr;
  282.  
  283. (*$ELSE*)
  284.     TPrDlg* = RECORD
  285.         Dlg*:                    Dialogs.DialogRecord;                            (*The Dialog window*)
  286.         pFltrProc*:                Dialogs.ModalFilterUPP;                            (*The Filter Proc.*)
  287.         pItemProc*:                PItemUPP;                                (*The Item evaluating proc.*)
  288.         hPrintUsr*:                THPrint;                                (*The user's print record.*)
  289.         fDoIt*:                    BOOLEAN;
  290.         fDone*:                    BOOLEAN;
  291.         lUser1*:                    LONGINT;                                (*Four longs for apps to hang global data.*)
  292.         lUser2*:                    LONGINT;                                (*Plus more stuff needed by the particular*)
  293.         lUser3*:                    LONGINT;                                (*printing dialog.*)
  294.         lUser4*:                    LONGINT;
  295.     END;
  296.  
  297.     TPPrDlg* = POINTER TO TPrDlg;
  298.  
  299.     TPPrDlgRef* = TPPrDlg;
  300.  
  301. (*$END*)
  302.     PDlgInitProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (hPrint: THPrint): TPPrDlg;
  303.     PDlgInitUPP* = Types.UniversalProcPtr;
  304.  
  305. CONST
  306.     uppPDlgInitProcInfo* = $000000F0; (* PROCEDURE (4 byte param): 4 byte result; *)
  307.  
  308. PROCEDURE NewPDlgInitProc*(userRoutine: PDlgInitProcPtr): PDlgInitUPP;
  309.     (*$IF NOT GENERATINGCFM *)
  310.     INLINE PASCAL $2E9F;
  311.     (*$END*)
  312.  
  313. PROCEDURE CallPDlgInitProc*(hPrint: THPrint; userRoutine: PDlgInitUPP): TPPrDlg;
  314.     (*$IF NOT GENERATINGCFM*)
  315.     INLINE PASCAL $205F, $4E90;
  316.     (*$END*)
  317.  
  318. TYPE
  319.     TGnlData* = RECORD
  320.         iOpCode*:                INTEGER;
  321.         iError*:                    INTEGER;
  322.         lReserved*:                LONGINT;                                (*more fields here depending on call*)
  323.     END;
  324.  
  325.     TRslRg* = RECORD
  326.         iMin*:                    INTEGER;
  327.         iMax*:                    INTEGER;
  328.     END;
  329.  
  330.     TRslRec* = RECORD
  331.         iXRsl*:                    INTEGER;
  332.         iYRsl*:                    INTEGER;
  333.     END;
  334.  
  335.     TGetRslBlk* = RECORD
  336.         iOpCode*:                INTEGER;
  337.         iError*:                    INTEGER;
  338.         lReserved*:                LONGINT;
  339.         iRgType*:                INTEGER;
  340.         xRslRg*:                    TRslRg;
  341.         yRslRg*:                    TRslRg;
  342.         iRslRecCnt*:                INTEGER;
  343.         rgRslRec*:                ARRAY 27 (*ΔΔ[0..26]ΔΔ*) OF TRslRec;
  344.     END;
  345.  
  346.     TSetRslBlk* = RECORD
  347.         iOpCode*:                INTEGER;
  348.         iError*:                    INTEGER;
  349.         lReserved*:                LONGINT;
  350.         hPrint*:                    THPrint;
  351.         iXRsl*:                    INTEGER;
  352.         iYRsl*:                    INTEGER;
  353.     END;
  354.  
  355.     TDftBitsBlk* = RECORD
  356.         iOpCode*:                INTEGER;
  357.         iError*:                    INTEGER;
  358.         lReserved*:                LONGINT;
  359.         hPrint*:                    THPrint;
  360.     END;
  361.  
  362.     TGetRotnBlk* = RECORD
  363.         iOpCode*:                INTEGER;
  364.         iError*:                    INTEGER;
  365.         lReserved*:                LONGINT;
  366.         hPrint*:                    THPrint;
  367.         fLandscape*:                BOOLEAN;
  368.         bXtra*:                    Types.SInt8;
  369.     END;
  370.  
  371.  
  372. PROCEDURE PrPurge*;
  373.     (*$IF NOT GENERATINGCFM*)
  374.     INLINE PASCAL $2F3C, $A800, $0000, $A8FD;
  375.     (*$END*)
  376. PROCEDURE PrNoPurge*;
  377.     (*$IF NOT GENERATINGCFM*)
  378.     INLINE PASCAL $2F3C, $B000, $0000, $A8FD;
  379.     (*$END*)
  380. PROCEDURE PrOpen*;
  381.     (*$IF NOT GENERATINGCFM*)
  382.     INLINE PASCAL $2F3C, $C800, $0000, $A8FD;
  383.     (*$END*)
  384. PROCEDURE PrClose*;
  385.     (*$IF NOT GENERATINGCFM*)
  386.     INLINE PASCAL $2F3C, $D000, $0000, $A8FD;
  387.     (*$END*)
  388. PROCEDURE PrintDefault*(hPrint: THPrint);
  389.     (*$IF NOT GENERATINGCFM*)
  390.     INLINE PASCAL $2F3C, $2004, $0480, $A8FD;
  391.     (*$END*)
  392. PROCEDURE PrValidate*(hPrint: THPrint): BOOLEAN;
  393.     (*$IF NOT GENERATINGCFM*)
  394.     INLINE PASCAL $2F3C, $5204, $0498, $A8FD;
  395.     (*$END*)
  396. PROCEDURE PrStlDialog*(hPrint: THPrint): BOOLEAN;
  397.     (*$IF NOT GENERATINGCFM*)
  398.     INLINE PASCAL $2F3C, $2A04, $0484, $A8FD;
  399.     (*$END*)
  400. PROCEDURE PrJobDialog*(hPrint: THPrint): BOOLEAN;
  401.     (*$IF NOT GENERATINGCFM*)
  402.     INLINE PASCAL $2F3C, $3204, $0488, $A8FD;
  403.     (*$END*)
  404. PROCEDURE PrStlInit*(hPrint: THPrint): TPPrDlg;
  405.     (*$IF NOT GENERATINGCFM*)
  406.     INLINE PASCAL $2F3C, $3C04, $040C, $A8FD;
  407.     (*$END*)
  408. PROCEDURE PrJobInit*(hPrint: THPrint): TPPrDlg;
  409.     (*$IF NOT GENERATINGCFM*)
  410.     INLINE PASCAL $2F3C, $4404, $0410, $A8FD;
  411.     (*$END*)
  412. PROCEDURE PrJobMerge*(hPrintSrc: THPrint; hPrintDst: THPrint);
  413.     (*$IF NOT GENERATINGCFM*)
  414.     INLINE PASCAL $2F3C, $5804, $089C, $A8FD;
  415.     (*$END*)
  416. PROCEDURE PrDlgMain*(hPrint: THPrint; pDlgInit: PDlgInitUPP): BOOLEAN;
  417.     (*$IF NOT GENERATINGCFM*)
  418.     INLINE PASCAL $2F3C, $4A04, $0894, $A8FD;
  419.     (*$END*)
  420. PROCEDURE PrOpenDoc*(hPrint: THPrint; pPrPort: TPPrPort; pIOBuf: Types.Ptr): TPPrPort;
  421.     (*$IF NOT GENERATINGCFM*)
  422.     INLINE PASCAL $2F3C, $0400, $0C00, $A8FD;
  423.     (*$END*)
  424. PROCEDURE PrCloseDoc*(pPrPort: TPPrPort);
  425.     (*$IF NOT GENERATINGCFM*)
  426.     INLINE PASCAL $2F3C, $0800, $0484, $A8FD;
  427.     (*$END*)
  428. PROCEDURE PrOpenPage*(pPrPort: TPPrPort; pPageFrame: TPRect);
  429.     (*$IF NOT GENERATINGCFM*)
  430.     INLINE PASCAL $2F3C, $1000, $0808, $A8FD;
  431.     (*$END*)
  432. PROCEDURE PrClosePage*(pPrPort: TPPrPort);
  433.     (*$IF NOT GENERATINGCFM*)
  434.     INLINE PASCAL $2F3C, $1800, $040C, $A8FD;
  435.     (*$END*)
  436. PROCEDURE PrPicFile*(hPrint: THPrint; pPrPort: TPPrPort; pIOBuf: Types.Ptr; pDevBuf: Types.Ptr; VAR prStatus: TPrStatus);
  437.     (*$IF NOT GENERATINGCFM*)
  438.     INLINE PASCAL $2F3C, $6005, $1480, $A8FD;
  439.     (*$END*)
  440. PROCEDURE PrError*(): INTEGER;
  441.     (*$IF NOT GENERATINGCFM*)
  442.     INLINE PASCAL $2F3C, $BA00, $0000, $A8FD;
  443.     (*$END*)
  444. PROCEDURE PrSetError*(iErr: INTEGER);
  445.     (*$IF NOT GENERATINGCFM*)
  446.     INLINE PASCAL $2F3C, $C000, $0200, $A8FD;
  447.     (*$END*)
  448. PROCEDURE PrGeneral*(pData: Types.Ptr);
  449.     (*$IF NOT GENERATINGCFM*)
  450.     INLINE PASCAL $2F3C, $7007, $0480, $A8FD;
  451.     (*$END*)
  452. PROCEDURE PrDrvrOpen*;
  453.     (*$IF NOT GENERATINGCFM*)
  454.     INLINE PASCAL $2F3C, $8000, $0000, $A8FD;
  455.     (*$END*)
  456. PROCEDURE PrDrvrClose*;
  457.     (*$IF NOT GENERATINGCFM*)
  458.     INLINE PASCAL $2F3C, $8800, $0000, $A8FD;
  459.     (*$END*)
  460. PROCEDURE PrCtlCall*(iWhichCtl: INTEGER; lParam1: LONGINT; lParam2: LONGINT; lParam3: LONGINT);
  461.     (*$IF NOT GENERATINGCFM*)
  462.     INLINE PASCAL $2F3C, $A000, $0E00, $A8FD;
  463.     (*$END*)
  464. PROCEDURE PrDrvrDCE*(): Types.Handle;
  465.     (*$IF NOT GENERATINGCFM*)
  466.     INLINE PASCAL $2F3C, $9400, $0000, $A8FD;
  467.     (*$END*)
  468. PROCEDURE PrDrvrVers*(): INTEGER;
  469.     (*$IF NOT GENERATINGCFM*)
  470.     INLINE PASCAL $2F3C, $9A00, $0000, $A8FD;
  471.     (*$END*)
  472.  
  473. (* $ALIGN RESET*)
  474. (* $POP*)
  475.  
  476.  END Printing.
  477.